[1] "A500"
[1] "A500"
Wagner Tassinari
DEMAT/ICE/UFRRJ & CIE/SMS-Rio
28/05/2023
“… é uma solução para o problema em identificar registros em duas bases de dados que representam entidades idênticas, ou seja, registros considerados correspondentes (ex: pessoas, lugares, objetos ou eventos de forma geral).” (Fellegi IP & Sunter AB, 1969)
Para esta tarefa, o mais comum é utilizar as chaves primárias (identificador único) já existentes nas bases de dados (ex: CPF, CNS, DNV, DO, no prontuário, código do município, código do setor censitário, etc.) ou até mesmo os próprios atributos inerentes a cada registro (ex: nome, nome da mãe, data de nascimento, nome do bairro, etc.)
O Record Linkage, no contexto das bases de dados do Sistema Único de Saúde (SUS) do Brasil, é um processo essencial. Ele envolve a integração e comparação de registros de diferentes bases de dados para identificar registros que se referem ao mesmo indivíduo ou evento.
Um dos maiores desafios enfrentados pelas bases de dados do SUS é a ausência de um identificador único para os pacientes comum na maioria das bases de dados. Esta lacuna complica a identificação de um mesmo indivíduo em diferentes bases, tornando mais complexa a tarefa de acompanhar e avaliar o histórico de saúde completo de uma pessoa.
Manual
Determinístico
Comparações automáticas onde tudo precisa corresponder ou regras específicas de dados devem ser programadas.
Precisa de uma nova regra para cada variação nos dados.
Não generalizável para outros conjuntos de dados.
Probabilístico
Estimar a probabilidade de duas entidades serem iguais.
Lida com dados ausentes e variações na codificação.
Fonte: Fundamentos de Record Linkage e sua aplicação nas bases de dados do SUS
Visa avaliar se os pares de registros são exatamente iguais em ambas as bases de dados, de modo que a concordância precisa ser total para que dois registros sejam considerados como um match (par).
Percebam que em ambas as bases de dados, as variáveis são do tipo texto, portanto apenas os registros que são exatamente iguais serão pareados a partir de uma abordagem determinística.
Fonte: Fundamentos de Record Linkage e sua aplicação nas bases de dados do SUS
Utilizando a mesma lógica do exemplo anterior, aqui podemos ver os mesmo indivíduos, porém com um atributo a mais (a data de nascimento).
Apesar do nome está escrito de maneira distinta, as datas de nascimento são idênticas e portanto, o método probabilístico vai identificar (a partir de um critério pré-definindo) que existe uma alta probabilidade de que sejam os mesmos sujeitos nas bases distintas.
https://rpubs.com/ahmademad/RecordLinkage
Figura 1: A note on using the F-measure for evaluating record linkage algorithms
Pré-processamento: Limpeza e padronização dos dados, construção das chaves de relacionamento
Redução do espaço de pesquisa: Blocagem
Comparação: métricas de string, comparações de anos, comparações numéricas
Classificação: Modelo Fellegi-Sunter
Previsão final: pontos de corte, validação
A preparação de dados é uma etapa crucial antes de iniciar qualquer análise. Neste processo, é essencial padronizar elementos como por exemplo as datas de nascimento, adaptando-os a um formato únicoDiferentes bases de dados podem apresentar as datas em estilos variados, como DD/MM/AAAA, MM/DD/AAAA, MM/DD/AA, DD-MM-AAAA, DDMMAAAA, entre outros. Portanto, é necessário uniformizar estes formatos para assegurar a consistência entre diferentes conjuntos de dados que precisam ser combinados.
Além disso, uma prática comum na padronização é converter todos os campos de texto para letras maiúsculas e remover caracteres especiais, como Á, á, ç, Í, í, Ó, â, entre outros.
Remoção das preposições.
Desenvolvimento de chaves de relacionamento, por exemplo as Statistical Linkage Key (SLK).
Geralmente as SLK’s são formadas pela concatenação de atributos (ex: nome + nome da mãe + data do nascimento) de forma direta ou via criptografia (ex: HASH MD5).
Tais estratégias também podem ser usadas para o linkage determinístico.
Visando otimizar o processamento computacional, as técnicas de blocagem irão estabelecer critérios de comparação com o intuito de reduzir os pares e diminuir o custo computacional quando grandes bases de dados forem pareadas.
Essa comparação é feita via estratégias de blocagem em alguns atributos inerente ao registros que possam ser agrupados, por exemplo: primeiro nome, ultimo nome, ano de nascimento, nome do bairro, etc.
Nesta etapa, é possível o uso da função chamada Soundex, um algoritmo fonético usado principalmente para indexar nomes por som, como eles são pronunciado.
A função principal do Soundex é codificar palavras (frequentemente nomes próprios) de modo que homófonos sejam codificados para o mesmo valor. Isso torna o Soundex particularmente útil em aplicações onde se deseja encontrar nomes que soam semelhantes, apesar de serem escritos de formas diferentes.
Comparação dos atributos via métricas de similaridade. São medidas que irão avaliar a similaridade total ou parcial entre uma cadeia de caracteres que compõe uma palavra ou expressão, resultando em uma pontuação. As mais utilizadas são:
Índice de Dice: O Índice de Dice é uma medida de similaridade utilizada no contexto de record linkage para quantificar a semelhança entre dois conjuntos de dados, frequentemente usados para avaliar a correspondência entre registros em diferentes bases de dados.
Distância de Levenshtein: é uma métrica que mede o número mínimo de operações necessárias para transformar uma sequência de caracteres em outra.
Jaro distance: calcula o número m de caracteres comuns que estão dentro da metade do comprimento da string mais longa e do número de transposições t
# Distância de Levenshtein
levenshtein_dist <- stringdist(nome1, nome2, method = "lv")
levenshtein_sim <- 1 - (levenshtein_dist / max(nchar(nome1), nchar(nome2)))
print(paste("Levenshtein Similarity: ", levenshtein_sim))[1] "Levenshtein Similarity: 0.882352941176471"
Os principais aspectos da técnica de RL é a Deduplicação de dados, isto é, eliminar dados duplicados visando diminuir o volume do BD e a formação de uma nova base de dados principal a partir dos dados de origem.
O processo determinístico de Record Linkage, irá ser responsável pela maioria dos pares.
Para uma validação satisfatória de um processo de Record Linkage, quase sempre será necessário a revisão manual, até para validação do processo do Record Linkage.
Técnicas baseadas em Machine Learning, utilizam uma base de dados para treinamento de pares representativos de populações reais e distintas, é com isso é possível estimar os parâmetros para desenvolver modelos mais acertivos.
Nesta aula vamos utilizar bancos de dados simulados com informações hipotéticas sobre id, nome do paciente, nome da mãe e sua data de nascimento.
Clique aqui para acessar o script.
Camargo Jr. KR, Coeli CM. Reclink: aplicativo para o relacionamento de base de dados, implementando o método probabilistic record linkage. Cad Saúde Pública 2000; 16:439-47.
Camargo Jr, Kenneth Rochel de, and Claudia Medina Coeli. “Going open source: some lessons learned from the development of OpenRecLink.” Cadernos de Saúde Pública 31 (2015): 257-263.
FELLEGI, I. P. & SUNTER, A. B., 1969. A theory for record linkage.
FLORES, Patrícia Viana Guimarães. Escolaridade materna, peso ao nascer e mortalidade neonatal: análise de dois períodos no Estado do Rio de Janeiro. Tese (Doutorado Saúde Coletiva) -Instituto de Estudos de Saúde Coletiva, Universidade Federal do Rio de Janeiro, Rio de Janeiro, 2013.
PRESTES, Isaías V. Pareamento de registros das grandes bases do SUS para permitir análises longitudinais de pacientes com câncer. Tese (Doutorado Epidemiologia) — Universidade Federal do Rio Grande do Sul, Porto Alegre, 2017.
Relatório do Banco mundial, disponível no site
Silva JPL, Travassos C, Vasconcellos MM, Campos LM. Revisão sistemática sobre encadeamento ou linkage de bases de dados secundários para uso em pesquisa em saúde no Brasil. Cad Saúde Colet (Rio J.) 2006; 14:197-224.
